/*
 * WARNING! All changes made in this file will be lost!
 * Created from 'scheme.tl' by 'mtprotoc'
 *
 *  Copyright (c) 2019-present,  NebulaChat Studio (https://nebula.chat).
 *  All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package mtproto

import (
	"github.com/golang/glog"
	"reflect"
)

type newRPCReplyFunc func() interface{}

type RPCContextTuple struct {
	Method       string
	NewReplyFunc newRPCReplyFunc
}

/*
	RPCName string
	MethodName string
	RequestName string
	ResponseName string
*/

var rpcContextRegisters = map[string]RPCContextTuple{
	"TLStickersCreateStickerSet":           RPCContextTuple{"/mtproto.RPCStickers/stickers_createStickerSet", func() interface{} { return new(Messages_StickerSet) }},
	"TLStickersRemoveStickerFromSet":       RPCContextTuple{"/mtproto.RPCStickers/stickers_removeStickerFromSet", func() interface{} { return new(Messages_StickerSet) }},
	"TLStickersChangeStickerPosition":      RPCContextTuple{"/mtproto.RPCStickers/stickers_changeStickerPosition", func() interface{} { return new(Messages_StickerSet) }},
	"TLStickersAddStickerToSet":            RPCContextTuple{"/mtproto.RPCStickers/stickers_addStickerToSet", func() interface{} { return new(Messages_StickerSet) }},
	"TLHelpGetScheme":                      RPCContextTuple{"/mtproto.RPCHelp/help_getScheme", func() interface{} { return new(Scheme) }},
	"TLHelpGetInviteTextLayer46":           RPCContextTuple{"/mtproto.RPCHelp/help_getInviteTextLayer46", func() interface{} { return new(Help_InviteText) }},
	"TLHelpGetAppUpdateLayer46":            RPCContextTuple{"/mtproto.RPCHelp/help_getAppUpdateLayer46", func() interface{} { return new(Help_AppUpdate) }},
	"TLHelpGetAppUpdateLayer62":            RPCContextTuple{"/mtproto.RPCHelp/help_getAppUpdateLayer62", func() interface{} { return new(Help_AppUpdate) }},
	"TLHelpGetConfig":                      RPCContextTuple{"/mtproto.RPCHelp/help_getConfig", func() interface{} { return new(Config) }},
	"TLHelpGetNearestDc":                   RPCContextTuple{"/mtproto.RPCHelp/help_getNearestDc", func() interface{} { return new(NearestDc) }},
	"TLHelpGetAppUpdate":                   RPCContextTuple{"/mtproto.RPCHelp/help_getAppUpdate", func() interface{} { return new(Help_AppUpdate) }},
	"TLHelpSaveAppLog":                     RPCContextTuple{"/mtproto.RPCHelp/help_saveAppLog", func() interface{} { return new(Bool) }},
	"TLHelpGetInviteText":                  RPCContextTuple{"/mtproto.RPCHelp/help_getInviteText", func() interface{} { return new(Help_InviteText) }},
	"TLHelpGetSupport":                     RPCContextTuple{"/mtproto.RPCHelp/help_getSupport", func() interface{} { return new(Help_Support) }},
	"TLHelpGetAppChangelog":                RPCContextTuple{"/mtproto.RPCHelp/help_getAppChangelog", func() interface{} { return new(Updates) }},
	"TLHelpSetBotUpdatesStatus":            RPCContextTuple{"/mtproto.RPCHelp/help_setBotUpdatesStatus", func() interface{} { return new(Bool) }},
	"TLHelpGetCdnConfig":                   RPCContextTuple{"/mtproto.RPCHelp/help_getCdnConfig", func() interface{} { return new(CdnConfig) }},
	"TLHelpGetRecentMeUrls":                RPCContextTuple{"/mtproto.RPCHelp/help_getRecentMeUrls", func() interface{} { return new(Help_RecentMeUrls) }},
	"TLHelpGetProxyData":                   RPCContextTuple{"/mtproto.RPCHelp/help_getProxyData", func() interface{} { return new(Help_ProxyData) }},
	"TLHelpGetTermsOfServiceUpdate":        RPCContextTuple{"/mtproto.RPCHelp/help_getTermsOfServiceUpdate", func() interface{} { return new(Help_TermsOfServiceUpdate) }},
	"TLHelpAcceptTermsOfService":           RPCContextTuple{"/mtproto.RPCHelp/help_acceptTermsOfService", func() interface{} { return new(Bool) }},
	"TLHelpGetDeepLinkInfo":                RPCContextTuple{"/mtproto.RPCHelp/help_getDeepLinkInfo", func() interface{} { return new(Help_DeepLinkInfo) }},
	"TLHelpGetPassportConfig":              RPCContextTuple{"/mtproto.RPCHelp/help_getPassportConfig", func() interface{} { return new(Help_PassportConfig) }},
	"TLHelpTest":                           RPCContextTuple{"/mtproto.RPCHelp/help_test", func() interface{} { return new(Bool) }},
	"TLPhotosUploadProfilePhotoLayer46":    RPCContextTuple{"/mtproto.RPCPhotos/photos_uploadProfilePhotoLayer46", func() interface{} { return new(Photos_Photo) }},
	"TLPhotosUpdateProfilePhoto":           RPCContextTuple{"/mtproto.RPCPhotos/photos_updateProfilePhoto", func() interface{} { return new(UserProfilePhoto) }},
	"TLPhotosUploadProfilePhoto":           RPCContextTuple{"/mtproto.RPCPhotos/photos_uploadProfilePhoto", func() interface{} { return new(Photos_Photo) }},
	"TLPhotosDeletePhotos":                 RPCContextTuple{"/mtproto.RPCPhotos/photos_deletePhotos", func() interface{} { return new(VectorLong) }},
	"TLPhotosGetUserPhotos":                RPCContextTuple{"/mtproto.RPCPhotos/photos_getUserPhotos", func() interface{} { return new(Photos_Photos) }},
	"TLBotsSendCustomRequest":              RPCContextTuple{"/mtproto.RPCBots/bots_sendCustomRequest", func() interface{} { return new(DataJSON) }},
	"TLBotsAnswerWebhookJSONQuery":         RPCContextTuple{"/mtproto.RPCBots/bots_answerWebhookJSONQuery", func() interface{} { return new(Bool) }},
	"TLAuthSendCodeLayer51":                RPCContextTuple{"/mtproto.RPCAuth/auth_sendCodeLayer51", func() interface{} { return new(Auth_SentCode) }},
	"TLAuthSendCode":                       RPCContextTuple{"/mtproto.RPCAuth/auth_sendCode", func() interface{} { return new(Auth_SentCode) }},
	"TLAuthSignUp":                         RPCContextTuple{"/mtproto.RPCAuth/auth_signUp", func() interface{} { return new(Auth_Authorization) }},
	"TLAuthSignIn":                         RPCContextTuple{"/mtproto.RPCAuth/auth_signIn", func() interface{} { return new(Auth_Authorization) }},
	"TLAuthLogOut":                         RPCContextTuple{"/mtproto.RPCAuth/auth_logOut", func() interface{} { return new(Bool) }},
	"TLAuthResetAuthorizations":            RPCContextTuple{"/mtproto.RPCAuth/auth_resetAuthorizations", func() interface{} { return new(Bool) }},
	"TLAuthExportAuthorization":            RPCContextTuple{"/mtproto.RPCAuth/auth_exportAuthorization", func() interface{} { return new(Auth_ExportedAuthorization) }},
	"TLAuthImportAuthorization":            RPCContextTuple{"/mtproto.RPCAuth/auth_importAuthorization", func() interface{} { return new(Auth_Authorization) }},
	"TLAuthBindTempAuthKey":                RPCContextTuple{"/mtproto.RPCAuth/auth_bindTempAuthKey", func() interface{} { return new(Bool) }},
	"TLAuthImportBotAuthorization":         RPCContextTuple{"/mtproto.RPCAuth/auth_importBotAuthorization", func() interface{} { return new(Auth_Authorization) }},
	"TLAuthCheckPassword":                  RPCContextTuple{"/mtproto.RPCAuth/auth_checkPassword", func() interface{} { return new(Auth_Authorization) }},
	"TLAuthRequestPasswordRecovery":        RPCContextTuple{"/mtproto.RPCAuth/auth_requestPasswordRecovery", func() interface{} { return new(Auth_PasswordRecovery) }},
	"TLAuthRecoverPassword":                RPCContextTuple{"/mtproto.RPCAuth/auth_recoverPassword", func() interface{} { return new(Auth_Authorization) }},
	"TLAuthResendCode":                     RPCContextTuple{"/mtproto.RPCAuth/auth_resendCode", func() interface{} { return new(Auth_SentCode) }},
	"TLAuthCancelCode":                     RPCContextTuple{"/mtproto.RPCAuth/auth_cancelCode", func() interface{} { return new(Bool) }},
	"TLAuthDropTempAuthKeys":               RPCContextTuple{"/mtproto.RPCAuth/auth_dropTempAuthKeys", func() interface{} { return new(Bool) }},
	"TLAccountRegisterDeviceLayer71":       RPCContextTuple{"/mtproto.RPCAccount/account_registerDeviceLayer71", func() interface{} { return new(Bool) }},
	"TLAccountUnregisterDeviceLayer71":     RPCContextTuple{"/mtproto.RPCAccount/account_unregisterDeviceLayer71", func() interface{} { return new(Bool) }},
	"TLAccountRegisterDevice":              RPCContextTuple{"/mtproto.RPCAccount/account_registerDevice", func() interface{} { return new(Bool) }},
	"TLAccountUnregisterDevice":            RPCContextTuple{"/mtproto.RPCAccount/account_unregisterDevice", func() interface{} { return new(Bool) }},
	"TLAccountUpdateNotifySettings":        RPCContextTuple{"/mtproto.RPCAccount/account_updateNotifySettings", func() interface{} { return new(Bool) }},
	"TLAccountGetNotifySettings":           RPCContextTuple{"/mtproto.RPCAccount/account_getNotifySettings", func() interface{} { return new(PeerNotifySettings) }},
	"TLAccountResetNotifySettings":         RPCContextTuple{"/mtproto.RPCAccount/account_resetNotifySettings", func() interface{} { return new(Bool) }},
	"TLAccountUpdateProfile":               RPCContextTuple{"/mtproto.RPCAccount/account_updateProfile", func() interface{} { return new(User) }},
	"TLAccountUpdateStatus":                RPCContextTuple{"/mtproto.RPCAccount/account_updateStatus", func() interface{} { return new(Bool) }},
	"TLAccountGetWallPapers":               RPCContextTuple{"/mtproto.RPCAccount/account_getWallPapers", func() interface{} { return new(Vector_WallPaper) }},
	"TLAccountReportPeer":                  RPCContextTuple{"/mtproto.RPCAccount/account_reportPeer", func() interface{} { return new(Bool) }},
	"TLAccountCheckUsername":               RPCContextTuple{"/mtproto.RPCAccount/account_checkUsername", func() interface{} { return new(Bool) }},
	"TLAccountUpdateUsername":              RPCContextTuple{"/mtproto.RPCAccount/account_updateUsername", func() interface{} { return new(User) }},
	"TLAccountGetPrivacy":                  RPCContextTuple{"/mtproto.RPCAccount/account_getPrivacy", func() interface{} { return new(Account_PrivacyRules) }},
	"TLAccountSetPrivacy":                  RPCContextTuple{"/mtproto.RPCAccount/account_setPrivacy", func() interface{} { return new(Account_PrivacyRules) }},
	"TLAccountDeleteAccount":               RPCContextTuple{"/mtproto.RPCAccount/account_deleteAccount", func() interface{} { return new(Bool) }},
	"TLAccountGetAccountTTL":               RPCContextTuple{"/mtproto.RPCAccount/account_getAccountTTL", func() interface{} { return new(AccountDaysTTL) }},
	"TLAccountSetAccountTTL":               RPCContextTuple{"/mtproto.RPCAccount/account_setAccountTTL", func() interface{} { return new(Bool) }},
	"TLAccountSendChangePhoneCode":         RPCContextTuple{"/mtproto.RPCAccount/account_sendChangePhoneCode", func() interface{} { return new(Auth_SentCode) }},
	"TLAccountChangePhone":                 RPCContextTuple{"/mtproto.RPCAccount/account_changePhone", func() interface{} { return new(User) }},
	"TLAccountUpdateDeviceLocked":          RPCContextTuple{"/mtproto.RPCAccount/account_updateDeviceLocked", func() interface{} { return new(Bool) }},
	"TLAccountGetAuthorizations":           RPCContextTuple{"/mtproto.RPCAccount/account_getAuthorizations", func() interface{} { return new(Account_Authorizations) }},
	"TLAccountResetAuthorization":          RPCContextTuple{"/mtproto.RPCAccount/account_resetAuthorization", func() interface{} { return new(Bool) }},
	"TLAccountGetPassword":                 RPCContextTuple{"/mtproto.RPCAccount/account_getPassword", func() interface{} { return new(Account_Password) }},
	"TLAccountGetPasswordSettings":         RPCContextTuple{"/mtproto.RPCAccount/account_getPasswordSettings", func() interface{} { return new(Account_PasswordSettings) }},
	"TLAccountUpdatePasswordSettings":      RPCContextTuple{"/mtproto.RPCAccount/account_updatePasswordSettings", func() interface{} { return new(Bool) }},
	"TLAccountSendConfirmPhoneCode":        RPCContextTuple{"/mtproto.RPCAccount/account_sendConfirmPhoneCode", func() interface{} { return new(Auth_SentCode) }},
	"TLAccountConfirmPhone":                RPCContextTuple{"/mtproto.RPCAccount/account_confirmPhone", func() interface{} { return new(Bool) }},
	"TLAccountGetTmpPassword":              RPCContextTuple{"/mtproto.RPCAccount/account_getTmpPassword", func() interface{} { return new(Account_TmpPassword) }},
	"TLAccountGetWebAuthorizations":        RPCContextTuple{"/mtproto.RPCAccount/account_getWebAuthorizations", func() interface{} { return new(Account_WebAuthorizations) }},
	"TLAccountResetWebAuthorization":       RPCContextTuple{"/mtproto.RPCAccount/account_resetWebAuthorization", func() interface{} { return new(Bool) }},
	"TLAccountResetWebAuthorizations":      RPCContextTuple{"/mtproto.RPCAccount/account_resetWebAuthorizations", func() interface{} { return new(Bool) }},
	"TLAccountGetAllSecureValues":          RPCContextTuple{"/mtproto.RPCAccount/account_getAllSecureValues", func() interface{} { return new(Vector_SecureValue) }},
	"TLAccountGetSecureValue":              RPCContextTuple{"/mtproto.RPCAccount/account_getSecureValue", func() interface{} { return new(Vector_SecureValue) }},
	"TLAccountSaveSecureValue":             RPCContextTuple{"/mtproto.RPCAccount/account_saveSecureValue", func() interface{} { return new(SecureValue) }},
	"TLAccountDeleteSecureValue":           RPCContextTuple{"/mtproto.RPCAccount/account_deleteSecureValue", func() interface{} { return new(Bool) }},
	"TLAccountGetAuthorizationForm":        RPCContextTuple{"/mtproto.RPCAccount/account_getAuthorizationForm", func() interface{} { return new(Account_AuthorizationForm) }},
	"TLAccountAcceptAuthorization":         RPCContextTuple{"/mtproto.RPCAccount/account_acceptAuthorization", func() interface{} { return new(Bool) }},
	"TLAccountSendVerifyPhoneCode":         RPCContextTuple{"/mtproto.RPCAccount/account_sendVerifyPhoneCode", func() interface{} { return new(Auth_SentCode) }},
	"TLAccountVerifyPhone":                 RPCContextTuple{"/mtproto.RPCAccount/account_verifyPhone", func() interface{} { return new(Bool) }},
	"TLAccountSendVerifyEmailCode":         RPCContextTuple{"/mtproto.RPCAccount/account_sendVerifyEmailCode", func() interface{} { return new(Account_SentEmailCode) }},
	"TLAccountVerifyEmail":                 RPCContextTuple{"/mtproto.RPCAccount/account_verifyEmail", func() interface{} { return new(Bool) }},
	"TLAccountInitTakeoutSession":          RPCContextTuple{"/mtproto.RPCAccount/account_initTakeoutSession", func() interface{} { return new(Account_Takeout) }},
	"TLAccountFinishTakeoutSession":        RPCContextTuple{"/mtproto.RPCAccount/account_finishTakeoutSession", func() interface{} { return new(Bool) }},
	"TLLangpackGetLanguagesLayer70":        RPCContextTuple{"/mtproto.RPCLangpack/langpack_getLanguagesLayer70", func() interface{} { return new(Vector_LangPackLanguage) }},
	"TLLangpackGetStringsLayer68":          RPCContextTuple{"/mtproto.RPCLangpack/langpack_getStringsLayer68", func() interface{} { return new(Vector_LangPackString) }},
	"TLLangpackGetLangPackLayer71":         RPCContextTuple{"/mtproto.RPCLangpack/langpack_getLangPackLayer71", func() interface{} { return new(LangPackDifference) }},
	"TLLangpackGetLangPack":                RPCContextTuple{"/mtproto.RPCLangpack/langpack_getLangPack", func() interface{} { return new(LangPackDifference) }},
	"TLLangpackGetStrings":                 RPCContextTuple{"/mtproto.RPCLangpack/langpack_getStrings", func() interface{} { return new(Vector_LangPackString) }},
	"TLLangpackGetDifference":              RPCContextTuple{"/mtproto.RPCLangpack/langpack_getDifference", func() interface{} { return new(LangPackDifference) }},
	"TLLangpackGetLanguages":               RPCContextTuple{"/mtproto.RPCLangpack/langpack_getLanguages", func() interface{} { return new(Vector_LangPackLanguage) }},
	"TLPhoneGetCallConfig":                 RPCContextTuple{"/mtproto.RPCPhone/phone_getCallConfig", func() interface{} { return new(DataJSON) }},
	"TLPhoneRequestCall":                   RPCContextTuple{"/mtproto.RPCPhone/phone_requestCall", func() interface{} { return new(Phone_PhoneCall) }},
	"TLPhoneAcceptCall":                    RPCContextTuple{"/mtproto.RPCPhone/phone_acceptCall", func() interface{} { return new(Phone_PhoneCall) }},
	"TLPhoneConfirmCall":                   RPCContextTuple{"/mtproto.RPCPhone/phone_confirmCall", func() interface{} { return new(Phone_PhoneCall) }},
	"TLPhoneReceivedCall":                  RPCContextTuple{"/mtproto.RPCPhone/phone_receivedCall", func() interface{} { return new(Bool) }},
	"TLPhoneDiscardCall":                   RPCContextTuple{"/mtproto.RPCPhone/phone_discardCall", func() interface{} { return new(Updates) }},
	"TLPhoneSetCallRating":                 RPCContextTuple{"/mtproto.RPCPhone/phone_setCallRating", func() interface{} { return new(Updates) }},
	"TLPhoneSaveCallDebug":                 RPCContextTuple{"/mtproto.RPCPhone/phone_saveCallDebug", func() interface{} { return new(Bool) }},
	"TLContactsGetStatuses":                RPCContextTuple{"/mtproto.RPCContacts/contacts_getStatuses", func() interface{} { return new(Vector_ContactStatus) }},
	"TLContactsGetContacts":                RPCContextTuple{"/mtproto.RPCContacts/contacts_getContacts", func() interface{} { return new(Contacts_Contacts) }},
	"TLContactsImportContacts":             RPCContextTuple{"/mtproto.RPCContacts/contacts_importContacts", func() interface{} { return new(Contacts_ImportedContacts) }},
	"TLContactsDeleteContact":              RPCContextTuple{"/mtproto.RPCContacts/contacts_deleteContact", func() interface{} { return new(Contacts_Link) }},
	"TLContactsDeleteContacts":             RPCContextTuple{"/mtproto.RPCContacts/contacts_deleteContacts", func() interface{} { return new(Bool) }},
	"TLContactsBlock":                      RPCContextTuple{"/mtproto.RPCContacts/contacts_block", func() interface{} { return new(Bool) }},
	"TLContactsUnblock":                    RPCContextTuple{"/mtproto.RPCContacts/contacts_unblock", func() interface{} { return new(Bool) }},
	"TLContactsGetBlocked":                 RPCContextTuple{"/mtproto.RPCContacts/contacts_getBlocked", func() interface{} { return new(Contacts_Blocked) }},
	"TLContactsExportCard":                 RPCContextTuple{"/mtproto.RPCContacts/contacts_exportCard", func() interface{} { return new(VectorInt) }},
	"TLContactsImportCard":                 RPCContextTuple{"/mtproto.RPCContacts/contacts_importCard", func() interface{} { return new(User) }},
	"TLContactsSearch":                     RPCContextTuple{"/mtproto.RPCContacts/contacts_search", func() interface{} { return new(Contacts_Found) }},
	"TLContactsResolveUsername":            RPCContextTuple{"/mtproto.RPCContacts/contacts_resolveUsername", func() interface{} { return new(Contacts_ResolvedPeer) }},
	"TLContactsGetTopPeers":                RPCContextTuple{"/mtproto.RPCContacts/contacts_getTopPeers", func() interface{} { return new(Contacts_TopPeers) }},
	"TLContactsResetTopPeerRating":         RPCContextTuple{"/mtproto.RPCContacts/contacts_resetTopPeerRating", func() interface{} { return new(Bool) }},
	"TLContactsResetSaved":                 RPCContextTuple{"/mtproto.RPCContacts/contacts_resetSaved", func() interface{} { return new(Bool) }},
	"TLContactsGetSaved":                   RPCContextTuple{"/mtproto.RPCContacts/contacts_getSaved", func() interface{} { return new(Vector_SavedContact) }},
	"TLContactsToggleTopPeers":             RPCContextTuple{"/mtproto.RPCContacts/contacts_toggleTopPeers", func() interface{} { return new(Bool) }},
	"TLUploadSaveFilePart":                 RPCContextTuple{"/mtproto.RPCUpload/upload_saveFilePart", func() interface{} { return new(Bool) }},
	"TLUploadGetFile":                      RPCContextTuple{"/mtproto.RPCUpload/upload_getFile", func() interface{} { return new(Upload_File) }},
	"TLUploadSaveBigFilePart":              RPCContextTuple{"/mtproto.RPCUpload/upload_saveBigFilePart", func() interface{} { return new(Bool) }},
	"TLUploadGetWebFile":                   RPCContextTuple{"/mtproto.RPCUpload/upload_getWebFile", func() interface{} { return new(Upload_WebFile) }},
	"TLUploadGetCdnFile":                   RPCContextTuple{"/mtproto.RPCUpload/upload_getCdnFile", func() interface{} { return new(Upload_CdnFile) }},
	"TLUploadReuploadCdnFile":              RPCContextTuple{"/mtproto.RPCUpload/upload_reuploadCdnFile", func() interface{} { return new(Vector_FileHash) }},
	"TLUploadGetCdnFileHashes":             RPCContextTuple{"/mtproto.RPCUpload/upload_getCdnFileHashes", func() interface{} { return new(Vector_FileHash) }},
	"TLUploadGetFileHashes":                RPCContextTuple{"/mtproto.RPCUpload/upload_getFileHashes", func() interface{} { return new(Vector_FileHash) }},
	"TLChannelsReadHistory":                RPCContextTuple{"/mtproto.RPCChannels/channels_readHistory", func() interface{} { return new(Bool) }},
	"TLChannelsDeleteMessages":             RPCContextTuple{"/mtproto.RPCChannels/channels_deleteMessages", func() interface{} { return new(Messages_AffectedMessages) }},
	"TLChannelsDeleteUserHistory":          RPCContextTuple{"/mtproto.RPCChannels/channels_deleteUserHistory", func() interface{} { return new(Messages_AffectedHistory) }},
	"TLChannelsReportSpam":                 RPCContextTuple{"/mtproto.RPCChannels/channels_reportSpam", func() interface{} { return new(Bool) }},
	"TLChannelsGetMessages":                RPCContextTuple{"/mtproto.RPCChannels/channels_getMessages", func() interface{} { return new(Messages_Messages) }},
	"TLChannelsGetParticipants":            RPCContextTuple{"/mtproto.RPCChannels/channels_getParticipants", func() interface{} { return new(Channels_ChannelParticipants) }},
	"TLChannelsGetParticipant":             RPCContextTuple{"/mtproto.RPCChannels/channels_getParticipant", func() interface{} { return new(Channels_ChannelParticipant) }},
	"TLChannelsGetChannels":                RPCContextTuple{"/mtproto.RPCChannels/channels_getChannels", func() interface{} { return new(Messages_Chats) }},
	"TLChannelsGetFullChannel":             RPCContextTuple{"/mtproto.RPCChannels/channels_getFullChannel", func() interface{} { return new(Messages_ChatFull) }},
	"TLChannelsCreateChannel":              RPCContextTuple{"/mtproto.RPCChannels/channels_createChannel", func() interface{} { return new(Updates) }},
	"TLChannelsEditAbout":                  RPCContextTuple{"/mtproto.RPCChannels/channels_editAbout", func() interface{} { return new(Bool) }},
	"TLChannelsEditAdmin":                  RPCContextTuple{"/mtproto.RPCChannels/channels_editAdmin", func() interface{} { return new(Updates) }},
	"TLChannelsEditTitle":                  RPCContextTuple{"/mtproto.RPCChannels/channels_editTitle", func() interface{} { return new(Updates) }},
	"TLChannelsEditPhoto":                  RPCContextTuple{"/mtproto.RPCChannels/channels_editPhoto", func() interface{} { return new(Updates) }},
	"TLChannelsCheckUsername":              RPCContextTuple{"/mtproto.RPCChannels/channels_checkUsername", func() interface{} { return new(Bool) }},
	"TLChannelsUpdateUsername":             RPCContextTuple{"/mtproto.RPCChannels/channels_updateUsername", func() interface{} { return new(Bool) }},
	"TLChannelsJoinChannel":                RPCContextTuple{"/mtproto.RPCChannels/channels_joinChannel", func() interface{} { return new(Updates) }},
	"TLChannelsLeaveChannel":               RPCContextTuple{"/mtproto.RPCChannels/channels_leaveChannel", func() interface{} { return new(Updates) }},
	"TLChannelsInviteToChannel":            RPCContextTuple{"/mtproto.RPCChannels/channels_inviteToChannel", func() interface{} { return new(Updates) }},
	"TLChannelsExportInvite":               RPCContextTuple{"/mtproto.RPCChannels/channels_exportInvite", func() interface{} { return new(ExportedChatInvite) }},
	"TLChannelsDeleteChannel":              RPCContextTuple{"/mtproto.RPCChannels/channels_deleteChannel", func() interface{} { return new(Updates) }},
	"TLChannelsToggleInvites":              RPCContextTuple{"/mtproto.RPCChannels/channels_toggleInvites", func() interface{} { return new(Updates) }},
	"TLChannelsExportMessageLink":          RPCContextTuple{"/mtproto.RPCChannels/channels_exportMessageLink", func() interface{} { return new(ExportedMessageLink) }},
	"TLChannelsToggleSignatures":           RPCContextTuple{"/mtproto.RPCChannels/channels_toggleSignatures", func() interface{} { return new(Updates) }},
	"TLChannelsUpdatePinnedMessage":        RPCContextTuple{"/mtproto.RPCChannels/channels_updatePinnedMessage", func() interface{} { return new(Updates) }},
	"TLChannelsGetAdminedPublicChannels":   RPCContextTuple{"/mtproto.RPCChannels/channels_getAdminedPublicChannels", func() interface{} { return new(Messages_Chats) }},
	"TLChannelsEditBanned":                 RPCContextTuple{"/mtproto.RPCChannels/channels_editBanned", func() interface{} { return new(Updates) }},
	"TLChannelsGetAdminLog":                RPCContextTuple{"/mtproto.RPCChannels/channels_getAdminLog", func() interface{} { return new(Channels_AdminLogResults) }},
	"TLChannelsSetStickers":                RPCContextTuple{"/mtproto.RPCChannels/channels_setStickers", func() interface{} { return new(Bool) }},
	"TLChannelsReadMessageContents":        RPCContextTuple{"/mtproto.RPCChannels/channels_readMessageContents", func() interface{} { return new(Bool) }},
	"TLChannelsDeleteHistory":              RPCContextTuple{"/mtproto.RPCChannels/channels_deleteHistory", func() interface{} { return new(Bool) }},
	"TLChannelsTogglePreHistoryHidden":     RPCContextTuple{"/mtproto.RPCChannels/channels_togglePreHistoryHidden", func() interface{} { return new(Updates) }},
	"TLChannelsGetLeftChannels":            RPCContextTuple{"/mtproto.RPCChannels/channels_getLeftChannels", func() interface{} { return new(Messages_Chats) }},
	"TLPaymentsGetPaymentForm":             RPCContextTuple{"/mtproto.RPCPayments/payments_getPaymentForm", func() interface{} { return new(Payments_PaymentForm) }},
	"TLPaymentsGetPaymentReceipt":          RPCContextTuple{"/mtproto.RPCPayments/payments_getPaymentReceipt", func() interface{} { return new(Payments_PaymentReceipt) }},
	"TLPaymentsValidateRequestedInfo":      RPCContextTuple{"/mtproto.RPCPayments/payments_validateRequestedInfo", func() interface{} { return new(Payments_ValidatedRequestedInfo) }},
	"TLPaymentsSendPaymentForm":            RPCContextTuple{"/mtproto.RPCPayments/payments_sendPaymentForm", func() interface{} { return new(Payments_PaymentResult) }},
	"TLPaymentsGetSavedInfo":               RPCContextTuple{"/mtproto.RPCPayments/payments_getSavedInfo", func() interface{} { return new(Payments_SavedInfo) }},
	"TLPaymentsClearSavedInfo":             RPCContextTuple{"/mtproto.RPCPayments/payments_clearSavedInfo", func() interface{} { return new(Bool) }},
	"TLMessagesReadHistoryLayer2":          RPCContextTuple{"/mtproto.RPCMessages/messages_readHistoryLayer2", func() interface{} { return new(Messages_AffectedHistory) }},
	"TLMessagesGetHistoryLayer51":          RPCContextTuple{"/mtproto.RPCMessages/messages_getHistoryLayer51", func() interface{} { return new(Messages_Messages) }},
	"TLMessagesGetDialogsLayer62":          RPCContextTuple{"/mtproto.RPCMessages/messages_getDialogsLayer62", func() interface{} { return new(Messages_Dialogs) }},
	"TLMessagesSearchLayer68":              RPCContextTuple{"/mtproto.RPCMessages/messages_searchLayer68", func() interface{} { return new(Messages_Messages) }},
	"TLMessagesGetMessagesLayer71":         RPCContextTuple{"/mtproto.RPCMessages/messages_getMessagesLayer71", func() interface{} { return new(Messages_Messages) }},
	"TLMessagesGetRecentLocationsLayer72":  RPCContextTuple{"/mtproto.RPCMessages/messages_getRecentLocationsLayer72", func() interface{} { return new(Messages_Messages) }},
	"TLMessagesGetMessages":                RPCContextTuple{"/mtproto.RPCMessages/messages_getMessages", func() interface{} { return new(Messages_Messages) }},
	"TLMessagesGetDialogs":                 RPCContextTuple{"/mtproto.RPCMessages/messages_getDialogs", func() interface{} { return new(Messages_Dialogs) }},
	"TLMessagesGetHistory":                 RPCContextTuple{"/mtproto.RPCMessages/messages_getHistory", func() interface{} { return new(Messages_Messages) }},
	"TLMessagesSearch":                     RPCContextTuple{"/mtproto.RPCMessages/messages_search", func() interface{} { return new(Messages_Messages) }},
	"TLMessagesReadHistory":                RPCContextTuple{"/mtproto.RPCMessages/messages_readHistory", func() interface{} { return new(Messages_AffectedMessages) }},
	"TLMessagesDeleteHistory":              RPCContextTuple{"/mtproto.RPCMessages/messages_deleteHistory", func() interface{} { return new(Messages_AffectedHistory) }},
	"TLMessagesDeleteMessages":             RPCContextTuple{"/mtproto.RPCMessages/messages_deleteMessages", func() interface{} { return new(Messages_AffectedMessages) }},
	"TLMessagesReceivedMessages":           RPCContextTuple{"/mtproto.RPCMessages/messages_receivedMessages", func() interface{} { return new(Vector_ReceivedNotifyMessage) }},
	"TLMessagesSetTyping":                  RPCContextTuple{"/mtproto.RPCMessages/messages_setTyping", func() interface{} { return new(Bool) }},
	"TLMessagesSendMessage":                RPCContextTuple{"/mtproto.RPCMessages/messages_sendMessage", func() interface{} { return new(Updates) }},
	"TLMessagesSendMedia":                  RPCContextTuple{"/mtproto.RPCMessages/messages_sendMedia", func() interface{} { return new(Updates) }},
	"TLMessagesForwardMessages":            RPCContextTuple{"/mtproto.RPCMessages/messages_forwardMessages", func() interface{} { return new(Updates) }},
	"TLMessagesReportSpam":                 RPCContextTuple{"/mtproto.RPCMessages/messages_reportSpam", func() interface{} { return new(Bool) }},
	"TLMessagesHideReportSpam":             RPCContextTuple{"/mtproto.RPCMessages/messages_hideReportSpam", func() interface{} { return new(Bool) }},
	"TLMessagesGetPeerSettings":            RPCContextTuple{"/mtproto.RPCMessages/messages_getPeerSettings", func() interface{} { return new(PeerSettings) }},
	"TLMessagesReport":                     RPCContextTuple{"/mtproto.RPCMessages/messages_report", func() interface{} { return new(Bool) }},
	"TLMessagesGetChats":                   RPCContextTuple{"/mtproto.RPCMessages/messages_getChats", func() interface{} { return new(Messages_Chats) }},
	"TLMessagesGetFullChat":                RPCContextTuple{"/mtproto.RPCMessages/messages_getFullChat", func() interface{} { return new(Messages_ChatFull) }},
	"TLMessagesEditChatTitle":              RPCContextTuple{"/mtproto.RPCMessages/messages_editChatTitle", func() interface{} { return new(Updates) }},
	"TLMessagesEditChatPhoto":              RPCContextTuple{"/mtproto.RPCMessages/messages_editChatPhoto", func() interface{} { return new(Updates) }},
	"TLMessagesAddChatUser":                RPCContextTuple{"/mtproto.RPCMessages/messages_addChatUser", func() interface{} { return new(Updates) }},
	"TLMessagesDeleteChatUser":             RPCContextTuple{"/mtproto.RPCMessages/messages_deleteChatUser", func() interface{} { return new(Updates) }},
	"TLMessagesCreateChat":                 RPCContextTuple{"/mtproto.RPCMessages/messages_createChat", func() interface{} { return new(Updates) }},
	"TLMessagesGetDhConfig":                RPCContextTuple{"/mtproto.RPCMessages/messages_getDhConfig", func() interface{} { return new(Messages_DhConfig) }},
	"TLMessagesRequestEncryption":          RPCContextTuple{"/mtproto.RPCMessages/messages_requestEncryption", func() interface{} { return new(EncryptedChat) }},
	"TLMessagesAcceptEncryption":           RPCContextTuple{"/mtproto.RPCMessages/messages_acceptEncryption", func() interface{} { return new(EncryptedChat) }},
	"TLMessagesDiscardEncryption":          RPCContextTuple{"/mtproto.RPCMessages/messages_discardEncryption", func() interface{} { return new(Bool) }},
	"TLMessagesSetEncryptedTyping":         RPCContextTuple{"/mtproto.RPCMessages/messages_setEncryptedTyping", func() interface{} { return new(Bool) }},
	"TLMessagesReadEncryptedHistory":       RPCContextTuple{"/mtproto.RPCMessages/messages_readEncryptedHistory", func() interface{} { return new(Bool) }},
	"TLMessagesSendEncrypted":              RPCContextTuple{"/mtproto.RPCMessages/messages_sendEncrypted", func() interface{} { return new(Messages_SentEncryptedMessage) }},
	"TLMessagesSendEncryptedFile":          RPCContextTuple{"/mtproto.RPCMessages/messages_sendEncryptedFile", func() interface{} { return new(Messages_SentEncryptedMessage) }},
	"TLMessagesSendEncryptedService":       RPCContextTuple{"/mtproto.RPCMessages/messages_sendEncryptedService", func() interface{} { return new(Messages_SentEncryptedMessage) }},
	"TLMessagesReceivedQueue":              RPCContextTuple{"/mtproto.RPCMessages/messages_receivedQueue", func() interface{} { return new(VectorLong) }},
	"TLMessagesReportEncryptedSpam":        RPCContextTuple{"/mtproto.RPCMessages/messages_reportEncryptedSpam", func() interface{} { return new(Bool) }},
	"TLMessagesReadMessageContents":        RPCContextTuple{"/mtproto.RPCMessages/messages_readMessageContents", func() interface{} { return new(Messages_AffectedMessages) }},
	"TLMessagesGetStickers":                RPCContextTuple{"/mtproto.RPCMessages/messages_getStickers", func() interface{} { return new(Messages_Stickers) }},
	"TLMessagesGetAllStickers":             RPCContextTuple{"/mtproto.RPCMessages/messages_getAllStickers", func() interface{} { return new(Messages_AllStickers) }},
	"TLMessagesGetWebPagePreview":          RPCContextTuple{"/mtproto.RPCMessages/messages_getWebPagePreview", func() interface{} { return new(MessageMedia) }},
	"TLMessagesExportChatInvite":           RPCContextTuple{"/mtproto.RPCMessages/messages_exportChatInvite", func() interface{} { return new(ExportedChatInvite) }},
	"TLMessagesCheckChatInvite":            RPCContextTuple{"/mtproto.RPCMessages/messages_checkChatInvite", func() interface{} { return new(ChatInvite) }},
	"TLMessagesImportChatInvite":           RPCContextTuple{"/mtproto.RPCMessages/messages_importChatInvite", func() interface{} { return new(Updates) }},
	"TLMessagesGetStickerSet":              RPCContextTuple{"/mtproto.RPCMessages/messages_getStickerSet", func() interface{} { return new(Messages_StickerSet) }},
	"TLMessagesInstallStickerSet":          RPCContextTuple{"/mtproto.RPCMessages/messages_installStickerSet", func() interface{} { return new(Messages_StickerSetInstallResult) }},
	"TLMessagesUninstallStickerSet":        RPCContextTuple{"/mtproto.RPCMessages/messages_uninstallStickerSet", func() interface{} { return new(Bool) }},
	"TLMessagesStartBot":                   RPCContextTuple{"/mtproto.RPCMessages/messages_startBot", func() interface{} { return new(Updates) }},
	"TLMessagesGetMessagesViews":           RPCContextTuple{"/mtproto.RPCMessages/messages_getMessagesViews", func() interface{} { return new(VectorInt) }},
	"TLMessagesToggleChatAdmins":           RPCContextTuple{"/mtproto.RPCMessages/messages_toggleChatAdmins", func() interface{} { return new(Updates) }},
	"TLMessagesEditChatAdmin":              RPCContextTuple{"/mtproto.RPCMessages/messages_editChatAdmin", func() interface{} { return new(Bool) }},
	"TLMessagesMigrateChat":                RPCContextTuple{"/mtproto.RPCMessages/messages_migrateChat", func() interface{} { return new(Updates) }},
	"TLMessagesSearchGlobal":               RPCContextTuple{"/mtproto.RPCMessages/messages_searchGlobal", func() interface{} { return new(Messages_Messages) }},
	"TLMessagesReorderStickerSets":         RPCContextTuple{"/mtproto.RPCMessages/messages_reorderStickerSets", func() interface{} { return new(Bool) }},
	"TLMessagesGetDocumentByHash":          RPCContextTuple{"/mtproto.RPCMessages/messages_getDocumentByHash", func() interface{} { return new(Document) }},
	"TLMessagesSearchGifs":                 RPCContextTuple{"/mtproto.RPCMessages/messages_searchGifs", func() interface{} { return new(Messages_FoundGifs) }},
	"TLMessagesGetSavedGifs":               RPCContextTuple{"/mtproto.RPCMessages/messages_getSavedGifs", func() interface{} { return new(Messages_SavedGifs) }},
	"TLMessagesSaveGif":                    RPCContextTuple{"/mtproto.RPCMessages/messages_saveGif", func() interface{} { return new(Bool) }},
	"TLMessagesGetInlineBotResults":        RPCContextTuple{"/mtproto.RPCMessages/messages_getInlineBotResults", func() interface{} { return new(Messages_BotResults) }},
	"TLMessagesSetInlineBotResults":        RPCContextTuple{"/mtproto.RPCMessages/messages_setInlineBotResults", func() interface{} { return new(Bool) }},
	"TLMessagesSendInlineBotResult":        RPCContextTuple{"/mtproto.RPCMessages/messages_sendInlineBotResult", func() interface{} { return new(Updates) }},
	"TLMessagesGetMessageEditData":         RPCContextTuple{"/mtproto.RPCMessages/messages_getMessageEditData", func() interface{} { return new(Messages_MessageEditData) }},
	"TLMessagesEditMessage":                RPCContextTuple{"/mtproto.RPCMessages/messages_editMessage", func() interface{} { return new(Updates) }},
	"TLMessagesEditInlineBotMessage":       RPCContextTuple{"/mtproto.RPCMessages/messages_editInlineBotMessage", func() interface{} { return new(Bool) }},
	"TLMessagesGetBotCallbackAnswer":       RPCContextTuple{"/mtproto.RPCMessages/messages_getBotCallbackAnswer", func() interface{} { return new(Messages_BotCallbackAnswer) }},
	"TLMessagesSetBotCallbackAnswer":       RPCContextTuple{"/mtproto.RPCMessages/messages_setBotCallbackAnswer", func() interface{} { return new(Bool) }},
	"TLMessagesGetPeerDialogs":             RPCContextTuple{"/mtproto.RPCMessages/messages_getPeerDialogs", func() interface{} { return new(Messages_PeerDialogs) }},
	"TLMessagesSaveDraft":                  RPCContextTuple{"/mtproto.RPCMessages/messages_saveDraft", func() interface{} { return new(Bool) }},
	"TLMessagesGetAllDrafts":               RPCContextTuple{"/mtproto.RPCMessages/messages_getAllDrafts", func() interface{} { return new(Updates) }},
	"TLMessagesGetFeaturedStickers":        RPCContextTuple{"/mtproto.RPCMessages/messages_getFeaturedStickers", func() interface{} { return new(Messages_FeaturedStickers) }},
	"TLMessagesReadFeaturedStickers":       RPCContextTuple{"/mtproto.RPCMessages/messages_readFeaturedStickers", func() interface{} { return new(Bool) }},
	"TLMessagesGetRecentStickers":          RPCContextTuple{"/mtproto.RPCMessages/messages_getRecentStickers", func() interface{} { return new(Messages_RecentStickers) }},
	"TLMessagesSaveRecentSticker":          RPCContextTuple{"/mtproto.RPCMessages/messages_saveRecentSticker", func() interface{} { return new(Bool) }},
	"TLMessagesClearRecentStickers":        RPCContextTuple{"/mtproto.RPCMessages/messages_clearRecentStickers", func() interface{} { return new(Bool) }},
	"TLMessagesGetArchivedStickers":        RPCContextTuple{"/mtproto.RPCMessages/messages_getArchivedStickers", func() interface{} { return new(Messages_ArchivedStickers) }},
	"TLMessagesGetMaskStickers":            RPCContextTuple{"/mtproto.RPCMessages/messages_getMaskStickers", func() interface{} { return new(Messages_AllStickers) }},
	"TLMessagesGetAttachedStickers":        RPCContextTuple{"/mtproto.RPCMessages/messages_getAttachedStickers", func() interface{} { return new(Vector_StickerSetCovered) }},
	"TLMessagesSetGameScore":               RPCContextTuple{"/mtproto.RPCMessages/messages_setGameScore", func() interface{} { return new(Updates) }},
	"TLMessagesSetInlineGameScore":         RPCContextTuple{"/mtproto.RPCMessages/messages_setInlineGameScore", func() interface{} { return new(Bool) }},
	"TLMessagesGetGameHighScores":          RPCContextTuple{"/mtproto.RPCMessages/messages_getGameHighScores", func() interface{} { return new(Messages_HighScores) }},
	"TLMessagesGetInlineGameHighScores":    RPCContextTuple{"/mtproto.RPCMessages/messages_getInlineGameHighScores", func() interface{} { return new(Messages_HighScores) }},
	"TLMessagesGetCommonChats":             RPCContextTuple{"/mtproto.RPCMessages/messages_getCommonChats", func() interface{} { return new(Messages_Chats) }},
	"TLMessagesGetAllChats":                RPCContextTuple{"/mtproto.RPCMessages/messages_getAllChats", func() interface{} { return new(Messages_Chats) }},
	"TLMessagesGetWebPage":                 RPCContextTuple{"/mtproto.RPCMessages/messages_getWebPage", func() interface{} { return new(WebPage) }},
	"TLMessagesToggleDialogPin":            RPCContextTuple{"/mtproto.RPCMessages/messages_toggleDialogPin", func() interface{} { return new(Bool) }},
	"TLMessagesReorderPinnedDialogs":       RPCContextTuple{"/mtproto.RPCMessages/messages_reorderPinnedDialogs", func() interface{} { return new(Bool) }},
	"TLMessagesGetPinnedDialogs":           RPCContextTuple{"/mtproto.RPCMessages/messages_getPinnedDialogs", func() interface{} { return new(Messages_PeerDialogs) }},
	"TLMessagesSetBotShippingResults":      RPCContextTuple{"/mtproto.RPCMessages/messages_setBotShippingResults", func() interface{} { return new(Bool) }},
	"TLMessagesSetBotPrecheckoutResults":   RPCContextTuple{"/mtproto.RPCMessages/messages_setBotPrecheckoutResults", func() interface{} { return new(Bool) }},
	"TLMessagesUploadMedia":                RPCContextTuple{"/mtproto.RPCMessages/messages_uploadMedia", func() interface{} { return new(MessageMedia) }},
	"TLMessagesSendScreenshotNotification": RPCContextTuple{"/mtproto.RPCMessages/messages_sendScreenshotNotification", func() interface{} { return new(Updates) }},
	"TLMessagesGetFavedStickers":           RPCContextTuple{"/mtproto.RPCMessages/messages_getFavedStickers", func() interface{} { return new(Messages_FavedStickers) }},
	"TLMessagesFaveSticker":                RPCContextTuple{"/mtproto.RPCMessages/messages_faveSticker", func() interface{} { return new(Bool) }},
	"TLMessagesGetUnreadMentions":          RPCContextTuple{"/mtproto.RPCMessages/messages_getUnreadMentions", func() interface{} { return new(Messages_Messages) }},
	"TLMessagesReadMentions":               RPCContextTuple{"/mtproto.RPCMessages/messages_readMentions", func() interface{} { return new(Messages_AffectedHistory) }},
	"TLMessagesGetRecentLocations":         RPCContextTuple{"/mtproto.RPCMessages/messages_getRecentLocations", func() interface{} { return new(Messages_Messages) }},
	"TLMessagesSendMultiMedia":             RPCContextTuple{"/mtproto.RPCMessages/messages_sendMultiMedia", func() interface{} { return new(Updates) }},
	"TLMessagesUploadEncryptedFile":        RPCContextTuple{"/mtproto.RPCMessages/messages_uploadEncryptedFile", func() interface{} { return new(EncryptedFile) }},
	"TLMessagesSearchStickerSets":          RPCContextTuple{"/mtproto.RPCMessages/messages_searchStickerSets", func() interface{} { return new(Messages_FoundStickerSets) }},
	"TLMessagesGetSplitRanges":             RPCContextTuple{"/mtproto.RPCMessages/messages_getSplitRanges", func() interface{} { return new(Vector_MessageRange) }},
	"TLMessagesMarkDialogUnread":           RPCContextTuple{"/mtproto.RPCMessages/messages_markDialogUnread", func() interface{} { return new(Bool) }},
	"TLMessagesGetDialogUnreadMarks":       RPCContextTuple{"/mtproto.RPCMessages/messages_getDialogUnreadMarks", func() interface{} { return new(Vector_DialogPeer) }},
	"TLMessagesClearAllDrafts":             RPCContextTuple{"/mtproto.RPCMessages/messages_clearAllDrafts", func() interface{} { return new(Bool) }},
	"TLUpdatesGetChannelDifferenceLayer46": RPCContextTuple{"/mtproto.RPCUpdates/updates_getChannelDifferenceLayer46", func() interface{} { return new(Updates_ChannelDifference) }},
	"TLUpdatesGetState":                    RPCContextTuple{"/mtproto.RPCUpdates/updates_getState", func() interface{} { return new(Updates_State) }},
	"TLUpdatesGetDifference":               RPCContextTuple{"/mtproto.RPCUpdates/updates_getDifference", func() interface{} { return new(Updates_Difference) }},
	"TLUpdatesGetChannelDifference":        RPCContextTuple{"/mtproto.RPCUpdates/updates_getChannelDifference", func() interface{} { return new(Updates_ChannelDifference) }},
	"TLUsersGetUsers":                      RPCContextTuple{"/mtproto.RPCUsers/users_getUsers", func() interface{} { return new(Vector_User) }},
	"TLUsersGetFullUser":                   RPCContextTuple{"/mtproto.RPCUsers/users_getFullUser", func() interface{} { return new(UserFull) }},
	"TLUsersSetSecureValueErrors":          RPCContextTuple{"/mtproto.RPCUsers/users_setSecureValueErrors", func() interface{} { return new(Bool) }},
	"TLSessionSetClientSessionInfo":        RPCContextTuple{"/mtproto.RPCSession/session_setClientSessionInfo", func() interface{} { return new(Bool) }},
	"TLSessionGetAuthorizations":           RPCContextTuple{"/mtproto.RPCSession/session_getAuthorizations", func() interface{} { return new(Account_Authorizations) }},
	"TLSessionResetAuthorization":          RPCContextTuple{"/mtproto.RPCSession/session_resetAuthorization", func() interface{} { return new(Int64) }},
	"TLSessionGetLayer":                    RPCContextTuple{"/mtproto.RPCSession/session_getLayer", func() interface{} { return new(Int32) }},
	"TLSessionGetLangCode":                 RPCContextTuple{"/mtproto.RPCSession/session_getLangCode", func() interface{} { return new(String) }},
	"TLSessionGetUserId":                   RPCContextTuple{"/mtproto.RPCSession/session_getUserId", func() interface{} { return new(Int32) }},
	"TLSessionGetPushSessionId":            RPCContextTuple{"/mtproto.RPCSession/session_getPushSessionId", func() interface{} { return new(Int64) }},
	"TLSessionGetFutureSalts":              RPCContextTuple{"/mtproto.RPCSession/session_getFutureSalts", func() interface{} { return new(FutureSalts) }},
	"TLSessionQueryAuthKey":                RPCContextTuple{"/mtproto.RPCSession/session_queryAuthKey", func() interface{} { return new(AuthKeyInfo) }},
	"TLSessionSetAuthKey":                  RPCContextTuple{"/mtproto.RPCSession/session_setAuthKey", func() interface{} { return new(Bool) }},
	"TLSessionBindAuthKeyUser":             RPCContextTuple{"/mtproto.RPCSession/session_bindAuthKeyUser", func() interface{} { return new(Bool) }},
	"TLSessionUnbindAuthKeyUser":           RPCContextTuple{"/mtproto.RPCSession/session_unbindAuthKeyUser", func() interface{} { return new(Bool) }},
	"TLSyncSyncUpdates":                    RPCContextTuple{"/mtproto.RPCSync/sync_syncUpdates", func() interface{} { return new(Bool) }},
	"TLSyncPushUpdates":                    RPCContextTuple{"/mtproto.RPCSync/sync_pushUpdates", func() interface{} { return new(Bool) }},
	"TLSyncSyncChannelUpdates":             RPCContextTuple{"/mtproto.RPCSync/sync_syncChannelUpdates", func() interface{} { return new(Bool) }},
	"TLSyncPushChannelUpdates":             RPCContextTuple{"/mtproto.RPCSync/sync_pushChannelUpdates", func() interface{} { return new(Bool) }},
	"TLSyncPushRpcResult":                  RPCContextTuple{"/mtproto.RPCSync/sync_pushRpcResult", func() interface{} { return new(Bool) }},
	"TLSyncGetState":                       RPCContextTuple{"/mtproto.RPCSync/sync_getState", func() interface{} { return new(Updates_State) }},
	"TLSyncGetDifference":                  RPCContextTuple{"/mtproto.RPCSync/sync_getDifference", func() interface{} { return new(Updates_Difference) }},
	"TLSyncGetChannelDifference":           RPCContextTuple{"/mtproto.RPCSync/sync_getChannelDifference", func() interface{} { return new(Updates_ChannelDifference) }},
	"TLPushConnectToSessionServer":         RPCContextTuple{"/mtproto.RPCPush/push_connectToSessionServer", func() interface{} { return new(ServerConnected) }},
	"TLPushPushUpdatesData":                RPCContextTuple{"/mtproto.RPCPush/push_pushUpdatesData", func() interface{} { return new(Bool) }},
	"TLPushPushRpcResultData":              RPCContextTuple{"/mtproto.RPCPush/push_pushRpcResultData", func() interface{} { return new(Bool) }},
	"TLBotExecuteCommand":                  RPCContextTuple{"/mtproto.RPCBot/bot_executeCommand", func() interface{} { return new(Message) }},
	"TLMessagesSendReact":                  RPCContextTuple{"/mtproto.RPCMessages/messages_sendReact", func() interface{} { return new(Bool) }},
}

func FindRPCContextTuple(t interface{}) *RPCContextTuple {
	rt := reflect.TypeOf(t)
	if rt.Kind() == reflect.Ptr {
		rt = rt.Elem()
	}

	m, ok := rpcContextRegisters[rt.Name()]
	if !ok {
		glog.Error("Can't find name: ", rt.Name())
		return nil
	}
	return &m
}
